=====================================================
=== Boutique installation and Config Instructions ===
=====================================================

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! Before you start, backup your worlds, your server, your hard disk, and the !!
!! actual physical components that make up your computer. I'm a new java      !!
!! programmer, so I can't guarantee that your computer won't melt.            !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! I have received little feedback about whether the features added in 1.2    !!
!! and 1.3 have worked correctly. I have tested them, but if something        !!
!! doesn't work how you expect it to work, please report the issue.           !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

At the time of writing, there is a vote running on my Boutique dev page about
whether the automatic table setup works. Feel free to vote.

==================
== Instructions ==
==================

= Pro Instructions =

1. Create a new database. Name it what you want, but the default is "Boutique".
   If you are unable to create new databases, then, in subsequent steps, use the
   name of one of your existing databases (as long as there is no table within
   it called "Shops").
2. Create a MySQL account with priveleges to: create tables; select data;
   insert new data; update data; and delete data; in that database
3. Copy boutique.jar to your plugins directory
4. Create a folder called "Boutique" in the plugins directory
5. Copy Congfig.yml into this folder
6. Open and edit the Config.yml you just made
7. Start the server
8. As a basic test, try the commands, /shopregister, /shopopen, /shoplist, and, 
   as long as you have not disabled teleporting to your own shop, /shop. Also,
   get another player to try to teleport to your shop with /shopgo.

if you get problems, ensure that "Reference Table.png" matches the structure
of the database created by the plugin.

= Noob Instructions =

Apologies for the patronising tone, I'm trying to catch most ways you could
fail at this and explain what's wrong.

Make sure you're using a craftbukkit server, and not the "vanilla" one which is
downloaded from minecraft.net

1. Find the folder where your CraftBukkit server is installed. In that folder is
   a folder called "plugins". Open it. If you don't see a folder called plugins,
   it is likely that you have not installed craftbukkit. See here for how to
   install craftbukkit: http://wiki.bukkit.org/Setting_up_a_server
2. Copy Boutique.jar from the folder this file came from into the folder you
   went to in the above step.

3. If your MySQL server is not enabled, please do so now. If you don't know what
   a MySQL server is, refer to [NOTE 1]
4. Create a new database. The default name for the database is "Boutique" (case
   sensitive - keep the uppercase B!). For some servers, you may not have
   control over your database name. In this case, you will be able to change the
   default name later. Stuck? Refer to [NOTE 2]
5. A user account for your MySQL database must be able to have with priveleges
   to create tables, select data, insert new data, update data, and delete data
   in that database. The default user, "root" has permission to do this, but if
   you can, set up another account with those priveleges. Otherwise, there are
   security risks. Remember the details of the user you have created. 
   Stuck? Refer to [NOTE 2]

6. Start your Minecraft Craftbukkit server. If it's already on, stop it first.
7. Stop your Minecraft Craftbukkit server

8. Rememeber the plugins folder? Go back to that.
9. Boutique should have created a new folder in plugins called "Boutique".
   Make sure you are within that folder.
10. There should be a file called Config.yml, open this up to edit it. (Make
    sure it's not the Config.yml in the folder where this file is located.
    (They're identical, but editing the one in this folder will make no
    difference!) Refer to [NOTE 3] if you don't know how to edit a YML file
          12b. Your address will probably be localhost. Your username and
               password will be the details for the account I asked you to
               create ealier. If you chose to use the root account in spite of
               my advice, the password might be "root" or might just be blank.
               When leaving the option blank, do not put in a space after the
               colon.

11. Start the server
12. As a player, try the commands, /shopregister, /shopopen, /shoplist, and, 
    as long as you have not disabled teleporting to your own shop, /shop. Also,
    as long as you have not disabled teleporting to others' shops entirely, get
    another player to try to teleport to your shop with /shopgo

If you get problems, ensure that "Reference Table.png" matches the structure
of the database created by the plugin.

===================
== Configuration ==
===================

The configurtaion file adequately explains most options, but it does not explain
the teleport options well. This is exmplained here.

For a given shop, there is an owner, and there is everyone else, whom are known
to the config as "customer"s. The configuration allows you to seperate out the
rights of these groups to teleport to the shop in question. For example, you
might want to allow the owner to teleport to a shop, but not customers. The
configuration is not this simple, however. This is because shops have two
further properties - shops that are open/closed, and shops for whom their owner
is offline/online. Thus, the rights are divided again amongst these groups.
Therefore, to stop owners teleporting to their shops, you'd have to disable
teleporting to them when they are both open and closed.

There are more options, however. You can set customers to use request
teleporting. With request teleporting, the customer can only teleport to a shop
if the owner agrees that you can. When the customer types in /shopgo username,
username gets a message on his screen which tells them that username wishes to
go to his shop, and that he must type /shopaccept to accept the request.

You can also bind the shop owner to that teleport request. This means that the
owner and the customer teleport to the shop when the teleport request is
accepted. The seller would not be able to teleport to the shop under the same
conditions otherwise.

Boutique should auto-disable itself if it finds options that don't make sense.
For example, using request teleporting when the owner is offline, or using
binding when request teleporting is not turned on for the respective option.

================================================================================

[NOTE 1]
MySQL is something which stores information on your computer. If you're using a
desktop/laptop computer, you will be able to install one relatively simply using
a program like WampServer or Lammp/Xammp. These programs install web servers on
your computer, and you might just be able to install MySQL on its own. I don't
know, go Google it. You should be able to Google your way through to having a
MySQL server on your computer.

[NOTE 2]
With Xampp/Lammp and Wamp, you will probably be using phpmyadmin to work on
setting the database up. I think with wamp, you can access it through the
right-click menu of the wamp icon in the bottom right hand corner of your
windows desktop. On my installation of Xammp/lammp (I'm actually not sure which
I have, or if there's a difference), I can access it using a web browser with
the address: http://localhost/phpmyadmin/
I'm not going to guide you through using the interface, because you should be
able to find a guide online somewhere.
If you are unable to find similar terms to the ones used above (e.g. "select 
tables"), I can't help you - you will use your intuition with this one.
Remember that granting all permissions for all databases is just as bad as using
 the root account

[NOTE 3]
Editing a YML file is simple. You have the name of the option, followed by what
you want to set it to. For example:

---------------------
favourite_food: cake
--------------------

You could edit this with your favourite food, for example:

---------------------
favourite_food: cookies
---------------------

Remember to leave the space after the colon before you write how you want to
change the options

Additionaly, YML files can have sub-settings. Say you want to record the
favourite food and favourite minecraft block of you and your friend. You might
set it up like this:

---------------------
dave:
 favourite_food: cake
 favourite_block: stone_bricks
lucy:
 favourite_food: cake
 favourite_block: glowstone
---------------------

I hope this demonstrates how information can be organised. The single space at
the beginning of the line is very important, as it tells the computer that it is
a sub-setting of the last setting above it to contain one less space

When you edit the YML file, don't change the name of any of the settings like,
for example "mysql_databasae". Only change what is after the colon.

